package com.cuit.xsc.weishare.activity;

import java.util.HashMap;
import java.util.Map;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.TextView;

import com.cuit.xsc.weishare.R;
import com.cuit.xsc.weishare.logic.MainService;
import com.cuit.xsc.weishare.logic.Task;
import com.cuit.xsc.weishare.model.UserInfo;
import com.cuit.xsc.weishare.services.UserInfoServices;
import com.cuit.xsc.weishare.util.ConfigUtil;
import com.cuit.xsc.weishare.util.LogUtil;
import com.cuit.xsc.weishare.util.MessageDialog;
import com.cuit.xsc.weishare.util.OAuth;
import com.cuit.xsc.weishare.util.OAuthConfigUtil;
import com.cuit.xsc.weishare.util.TextUtil;

public class SuccessAct extends BaseActivity
{
	private TextView textView;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.success);
		textView = (TextView) findViewById(R.id.text);
		String url = getIntent().getStringExtra("url");
		if (url.startsWith(ConfigUtil.callBackUrl))
		{
			Uri uri = Uri.parse(url);
			
			String oauth_verifier = uri.getQueryParameter("oauth_verifier");
			LogUtil.d(this, "oauth_verifier = "+oauth_verifier);
			OAuth oAuth = OAuth.getInstance();
			oAuth.setOauthVerifier(oauth_verifier);
			String accessToken = oAuth.getAccessToken();
			String oauth_token = null;
			String oauth_token_secret = null;
			Map<String, String> map = null;
			if (accessToken != null)
			{
				LogUtil.d(this, "accessToken="+accessToken);
				map = TextUtil.splitResponse(accessToken);
				oauth_token = map.get("oauth_token");
				oauth_token_secret = map.get("oauth_token_secret");
				
			}
		//	LogUtil.d(this, "oauth:"+oauth_token+"#");
		//	LogUtil.d(this, "secret:"+oauth_token_secret+"#");

			String curWeibo = OAuthConfigUtil.getInstance().getCurWeibo();
			UserInfo userInfo = new UserInfo();
			userInfo.setToken(oauth_token);
			userInfo.setTokenSecret(oauth_token_secret);
			userInfo.setIsDefault("1");
			if (curWeibo.equals(ConfigUtil.QQW))
			{
				userInfo.setUserType(ConfigUtil.QQW);
				userInfo.setUserName(map.get("user"));
			}
			else
			{
				userInfo.setUserType(ConfigUtil.SINAW);
				userInfo.setUserId(map.get("user"));				
			}
			
			Map<String, Object> taskParams = new HashMap<String, Object>(1);
			taskParams.put("user", userInfo);
			
			Task  task = new Task(Task.GET_USER_HEAD, taskParams);
			MainService.addTask(task);
			showProgress();
		}
		else 
		{
			textView.setText(url);
		}	
	}
	
	@Override
	public void refresh(Object... param)
	{
		dismissProgress();
		int flag = ((Integer) param[0]).intValue();
		switch (flag)
		{
		case Task.GET_USER_HEAD:
			UserInfo tempUser = (UserInfo) param[1];
		//	BitmapDrawable tempDrawable = (BitmapDrawable) tempUser.getUserIcon();
		//	LogUtil.i(this,"tempDrawable== " + tempDrawable);
		//	LogUtil.i(this, "userinfo:"+tempUser.toString());
			if (tempUser != null)
			{
				UserInfoServices userInfoServices = new UserInfoServices(this);
				userInfoServices.addUserInfo(tempUser);
				MainService.setCurrentUser(tempUser);
				
				MessageDialog dialog = new MessageDialog(this);
				dialog.ShowToast("授权成功");
				
				Intent intent = new Intent();
				intent.setClass(this, MainAct.class);
				startActivity(intent);
				
				
				finish();
				
			}
			
			break;
		default:
			break;
		}
		

		super.refresh(param);
	}
	

}
